import { http } from "@/utils/http";

// 经纪人列表请求参数
export interface BrokerListRequest {
  keyword?: string; // 搜索关键词(姓名/电话)
  page: number;
  page_size: number;
  partner_id?: number; // 合伙人ID
  status?: number; // 状态：1-启用 2-禁用
}

// 经纪人列表响应
export interface BrokerListResponse {
  code: number;
  message: string;
  data: {
    list: Broker[];
    total: number;
    total_pages: number;
  };
}

// 经纪人信息
export interface Broker {
  id: number;
  name: string; // 姓名
  phone: string; // 联系电话
  username: string; // 账号
  id_card: string; // 身份证号
  area: string; // 负责区域
  expertise: string; // 擅长领域
  work_years: number; // 从业年限
  role_id: number; // 角色ID
  partner_id: number; // 所属合伙人平台ID
  parent_id: number; // 上级用户ID
  status: number; // 状态：1-启用 2-禁用
  monthly_leads: number; // 本月商机
  monthly_points: number; // 本月获得积分
  total_leads: number; // 累计商机
  total_points: number; // 累计获得积分
  created_at: string;
  updated_at: string;
}

// 创建经纪人请求参数
export interface BrokerCreateRequest {
  name: string; // 姓名
  phone: string; // 联系电话
  username: string; // 账号
  password: string; // 密码
  id_card: string; // 身份证号
  area?: string; // 负责区域
  expertise?: string; // 擅长领域
  work_years?: number; // 从业年限
  role_id?: number; // 角色ID
  partner_id?: number; // 所属合伙人平台ID
  parent_id?: number; // 上级用户ID
}

// 更新经纪人请求参数
export interface BrokerUpdateRequest {
  id: number;
  name: string; // 姓名
  phone: string; // 联系电话
  id_card: string; // 身份证号
  area?: string; // 负责区域
  expertise?: string; // 擅长领域
  work_years?: number; // 从业年限
  role_id?: number; // 角色ID
  partner_id?: number; // 所属合伙人平台ID
  parent_id?: number; // 上级用户ID
}

// 更新经纪人状态请求参数
export interface BrokerStatusRequest {
  id: number;
  status: number; // 状态：1-启用 2-禁用
}

// 通用响应
export interface CommonResponse {
  code: number;
  message: string;
  data?: any;
}

/**
 * 获取经纪人列表
 * @param data 查询参数
 */
export const getBrokerList = (data: BrokerListRequest): Promise<BrokerListResponse> => {
  return http.request<BrokerListResponse>("post", "/partner/broker/list", { data });
};

/**
 * 创建经纪人
 * @param data 经纪人信息
 */
export const createBroker = (data: BrokerCreateRequest): Promise<CommonResponse> => {
  return http.request<CommonResponse>("post", "/partner/broker/create", { data });
};

/**
 * 更新经纪人
 * @param data 更新参数
 */
export const updateBroker = (data: BrokerUpdateRequest): Promise<CommonResponse> => {
  return http.request<CommonResponse>("post", "/partner/broker/update", { data });
};

/**
 * 更新经纪人状态
 * @param data 状态信息
 */
export const updateBrokerStatus = (data: BrokerStatusRequest): Promise<CommonResponse> => {
  return http.request<CommonResponse>("post", "/partner/broker/status", { data });
}; 